package com.yuju.account.service;

import com.yuju.account.dao.entity.Shift;
import com.yuju.account.model.ShiftAccountModel;
import com.yuju.account.model.ShiftModel;
import com.yuju.common.core.service.IBaseService;
import com.yuju.model.account.AccountModel;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * 类名：IShiftService  <br />
 *
 * 功能：
 *
 * @author : jiaokn <br />
 * @Date : 2017年12月7日 下午5:18:43  <br />
 * @version : 1.1 <br />
 */
public interface IShiftService extends IBaseService<ShiftModel, Shift, String> {
	/**
	 * 
	 * 功能：获得交班统计信息<br/>
	 *
	 * @author jiangp
	 * @Date 2017年12月18日 下午8:22:34 <br/>
	 */
    ShiftModel getShift(String hotelId);

    int addShift(String groupId,String hotelId,String empId,String empName, String hotelCode);

    /**
     * 
     * 功能：从账务列表中统计交班信息<br/>
     *
     * @author jiangp
     * @Date 2017年12月18日 下午8:22:57 <br/>
     */
    ShiftModel getShiftDataFromAccount(List<AccountModel> accountModelList);

    /**
     * 
     * 功能：从库中获得当前<br/>
     *
     * @author jiangp
     * @Date 2017年12月18日 下午8:23:19 <br/>
     */
    List<ShiftModel> getShiftIdFromDB(String hotelId);

    /**
     * 
     * 功能：从缓存中获得酒店的当前班次Id和班次号<br/>
     *
     * @author jiangp
     * @Date 2017年12月18日 下午8:24:00 <br/>
     */
    ShiftModel getCurrentShiftFromCache(String hotelId);

    /**
     * 
     * 功能：将酒店的版此次Id和班次号更新到缓存<br/>
     *
     * @author jiangp
     * @Date 2017年12月18日 下午8:24:37 <br/>
     */
    void setCurrentShiftToCache(String hotelId, ShiftModel shiftModel);

    /**
     * 
     * 功能：创建酒店时初始化酒店交班<br/>
     *
     * @author jiangp
     * @Date 2017年12月18日 下午8:25:20 <br/>
     */
    int initShift(String groupId, String hotelId, String hotelCode);

    /**
     * 
     * 功能：查询班次基本信息<br/>
     *
     * @author jiangp
     * @Date 2017年12月26日 下午5:14:00 <br/>
     */
    List<ShiftModel> queryShiftInfo(ShiftModel shiftModel);

    /**
     * 
     * 功能：查询交班账务信息<br/>
     *
     * @author jiangp
     * @Date 2017年12月26日 下午5:13:38 <br/>
     */
    List<ShiftAccountModel> queryShiftAccountInfo(ShiftAccountModel shiftAccountModel);

    /**
     * 
     * 功能：获得当前班次Id，对外接口<br/>
     *
     * @author jiangp
     * @Date 2017年12月26日 下午5:13:21 <br/>
     */
    String getCurrentClassId(String hotelId);

    /**
     * 
     * 功能：获得上班班次基本信息<br/>
     *
     * @author jiangp
     * @Date 2017年12月26日 下午5:13:05 <br/>
     */
    ShiftModel getPreviousShiftBaseInfo(String hotelId);

    /**
     * 
     * 功能：获得当前班次基本信息<br/>
     *
     * @author jiangp
     * @Date 2017年12月26日 下午5:12:50 <br/>
     */
    ShiftModel getCurrentShiftBaseInfo(String hotelId);
}
